package cl.gob.minvu.catastro.managedBean;

import java.io.Serializable;
import java.util.List;

import javax.annotation.PostConstruct;
import javax.ejb.EJB;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.SessionScoped;
import cl.gob.minvu.catastro.ejb.EncuestadorEJBRemote;
import cl.gob.minvu.catastro.model.Encuestador;
import cl.gob.minvu.catastro.model.Persona;
import cl.gob.minvu.catastro.util.ManagedBeanUtil;

@ManagedBean(name="encuestadorBean")
@SessionScoped
public class EncuestadorBean implements Serializable {

	/**
	 * 
	 */
	private static final long serialVersionUID = 1L;
	
	@EJB
	private EncuestadorEJBRemote encuestadorEJB;

	private List<Encuestador> encuestadores;
	private Encuestador encuestador;
	private Encuestador encuestadorSeleccionado;
	
	@PostConstruct
	public void init() {
		this.encuestadores = this.encuestadorEJB.list(null);
		this.clearFrm();
	}
	
	public void clearFrm() {
		this.encuestador = new Encuestador();
		this.encuestador.setPersona(new Persona());
		this.encuestadorSeleccionado = null;
	}
	
	public void loadForUpdate() {
		this.encuestador = this.encuestadorSeleccionado;
	}
	
	public void updateEncuestador() {
		if (this.encuestadorSeleccionado == null) {
			ManagedBeanUtil.getMessageWARN("Debe seleccionar un Encuestador a actualizar");
		} else if (!this.encuestadorEJB.update(this.encuestador)) {
			ManagedBeanUtil.getMessageERROR("Se ha producido un error al actualizar el Encuestador, intente más tarde");
		} else {
			ManagedBeanUtil.getMessageINFO("El encuestador ha sido actualizado");
		}
		
		this.init();
	}

	public List<Encuestador> getEncuestadores() {
		return encuestadores;
	}

	public void setEncuestadores(List<Encuestador> encuestadores) {
		this.encuestadores = encuestadores;
	}

	public Encuestador getEncuestador() {
		return encuestador;
	}

	public void setEncuestador(Encuestador encuestador) {
		this.encuestador = encuestador;
	}

	public Encuestador getEncuestadorSeleccionado() {
		return encuestadorSeleccionado;
	}

	public void setEncuestadorSeleccionado(Encuestador encuestadorSeleccionado) {
		this.encuestadorSeleccionado = encuestadorSeleccionado;
	}

}
